{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O\n",
    "from sklearn import metrics\n",
    "from sklearn.metrics import r2_score  #评价回归预测模型的性能\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "#color = sns.color_palette()\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011/1/1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011/1/2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011/1/3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011/1/4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011/1/5</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant    dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011/1/1       1   0     1        0        6           0   \n",
       "1        2  2011/1/2       1   0     1        0        0           0   \n",
       "2        3  2011/1/3       1   0     1        0        1           1   \n",
       "3        4  2011/1/4       1   0     1        0        2           1   \n",
       "4        5  2011/1/5       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# path to where the data lies\n",
    "data = pd.read_csv(\"day.csv\")\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 731 entries, 0 to 730\n",
      "Data columns (total 16 columns):\n",
      "instant       731 non-null int64\n",
      "dteday        731 non-null object\n",
      "season        731 non-null int64\n",
      "yr            731 non-null int64\n",
      "mnth          731 non-null int64\n",
      "holiday       731 non-null int64\n",
      "weekday       731 non-null int64\n",
      "workingday    731 non-null int64\n",
      "weathersit    731 non-null int64\n",
      "temp          731 non-null float64\n",
      "atemp         731 non-null float64\n",
      "hum           731 non-null float64\n",
      "windspeed     731 non-null float64\n",
      "casual        731 non-null int64\n",
      "registered    731 non-null int64\n",
      "cnt           731 non-null int64\n",
      "dtypes: float64(4), int64(11), object(1)\n",
      "memory usage: 91.5+ KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "instant       0\n",
       "dteday        0\n",
       "season        0\n",
       "yr            0\n",
       "mnth          0\n",
       "holiday       0\n",
       "weekday       0\n",
       "workingday    0\n",
       "weathersit    0\n",
       "temp          0\n",
       "atemp         0\n",
       "hum           0\n",
       "windspeed     0\n",
       "casual        0\n",
       "registered    0\n",
       "cnt           0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "### 查看是否有空值\n",
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>2.496580</td>\n",
       "      <td>0.500684</td>\n",
       "      <td>6.519836</td>\n",
       "      <td>0.028728</td>\n",
       "      <td>2.997264</td>\n",
       "      <td>0.683995</td>\n",
       "      <td>1.395349</td>\n",
       "      <td>0.495385</td>\n",
       "      <td>0.474354</td>\n",
       "      <td>0.627894</td>\n",
       "      <td>0.190486</td>\n",
       "      <td>848.176471</td>\n",
       "      <td>3656.172367</td>\n",
       "      <td>4504.348837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>211.165812</td>\n",
       "      <td>1.110807</td>\n",
       "      <td>0.500342</td>\n",
       "      <td>3.451913</td>\n",
       "      <td>0.167155</td>\n",
       "      <td>2.004787</td>\n",
       "      <td>0.465233</td>\n",
       "      <td>0.544894</td>\n",
       "      <td>0.183051</td>\n",
       "      <td>0.162961</td>\n",
       "      <td>0.142429</td>\n",
       "      <td>0.077498</td>\n",
       "      <td>686.622488</td>\n",
       "      <td>1560.256377</td>\n",
       "      <td>1937.211452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>22.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>183.500000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.337083</td>\n",
       "      <td>0.337842</td>\n",
       "      <td>0.520000</td>\n",
       "      <td>0.134950</td>\n",
       "      <td>315.500000</td>\n",
       "      <td>2497.000000</td>\n",
       "      <td>3152.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.498333</td>\n",
       "      <td>0.486733</td>\n",
       "      <td>0.626667</td>\n",
       "      <td>0.180975</td>\n",
       "      <td>713.000000</td>\n",
       "      <td>3662.000000</td>\n",
       "      <td>4548.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>548.500000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.655417</td>\n",
       "      <td>0.608602</td>\n",
       "      <td>0.730209</td>\n",
       "      <td>0.233214</td>\n",
       "      <td>1096.000000</td>\n",
       "      <td>4776.500000</td>\n",
       "      <td>5956.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.861667</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>3410.000000</td>\n",
       "      <td>6946.000000</td>\n",
       "      <td>8714.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          instant      season          yr        mnth     holiday     weekday  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean   366.000000    2.496580    0.500684    6.519836    0.028728    2.997264   \n",
       "std    211.165812    1.110807    0.500342    3.451913    0.167155    2.004787   \n",
       "min      1.000000    1.000000    0.000000    1.000000    0.000000    0.000000   \n",
       "25%    183.500000    2.000000    0.000000    4.000000    0.000000    1.000000   \n",
       "50%    366.000000    3.000000    1.000000    7.000000    0.000000    3.000000   \n",
       "75%    548.500000    3.000000    1.000000   10.000000    0.000000    5.000000   \n",
       "max    731.000000    4.000000    1.000000   12.000000    1.000000    6.000000   \n",
       "\n",
       "       workingday  weathersit        temp       atemp         hum   windspeed  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean     0.683995    1.395349    0.495385    0.474354    0.627894    0.190486   \n",
       "std      0.465233    0.544894    0.183051    0.162961    0.142429    0.077498   \n",
       "min      0.000000    1.000000    0.059130    0.079070    0.000000    0.022392   \n",
       "25%      0.000000    1.000000    0.337083    0.337842    0.520000    0.134950   \n",
       "50%      1.000000    1.000000    0.498333    0.486733    0.626667    0.180975   \n",
       "75%      1.000000    2.000000    0.655417    0.608602    0.730209    0.233214   \n",
       "max      1.000000    3.000000    0.861667    0.840896    0.972500    0.507463   \n",
       "\n",
       "            casual   registered          cnt  \n",
       "count   731.000000   731.000000   731.000000  \n",
       "mean    848.176471  3656.172367  4504.348837  \n",
       "std     686.622488  1560.256377  1937.211452  \n",
       "min       2.000000    20.000000    22.000000  \n",
       "25%     315.500000  2497.000000  3152.000000  \n",
       "50%     713.000000  3662.000000  4548.000000  \n",
       "75%    1096.000000  4776.500000  5956.000000  \n",
       "max    3410.000000  6946.000000  8714.000000  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data=data.drop('dteday',axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data=data.drop(['casual','registered'],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(731, 13)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(13, 13)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#get the names of all the columns\n",
    "cols=data.columns \n",
    "\n",
    "# Calculates pearson co-efficient for all combinations，通常认为相关系数大于0.5的为强相关\n",
    "data_corr = data.corr().abs()\n",
    "data_corr.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(figsize=(12, 8))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "\n",
    "# Mask unimportant features\n",
    "sns.heatmap(data_corr, mask=data_corr < 1, cbar=False)\n",
    "\n",
    "#plt.savefig('bikesharing_coor.png' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 从原始数据中分离输入特征x和输出y\n",
    "y = data['cnt'].values\n",
    "X = data.drop('cnt', axis = 1)\n",
    "\n",
    "#用于后续显示权重系数对应的特征\n",
    "columns = X.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(584, 12)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将数据分割训练数据与测试数据\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# 随机采样20%的数据构建测试样本，其余作为训练样本\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33, test_size=0.2)\n",
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/preprocessing/data.py:617: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  return self.partial_fit(X, y)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/base.py:462: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  return self.fit(X, **fit_params).transform(X)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/ipykernel_launcher.py:10: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by StandardScaler.\n",
      "  # Remove the CWD from sys.path while we load stuff.\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:590: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:590: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/utils/validation.py:590: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    }
   ],
   "source": [
    "# 数据标准化\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "# 分别初始化对特征和目标值的标准化器\n",
    "ss_X = StandardScaler()\n",
    "ss_y = StandardScaler()\n",
    "\n",
    "# 分别对训练和测试数据的特征以及目标值进行标准化处理\n",
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.transform(X_test)\n",
    "\n",
    "#对y做标准化不是必须\n",
    "#对y标准化的好处是不同问题的w差异不太大，同时正则参数的范围也有限\n",
    "y_train = ss_y.fit_transform(y_train.reshape(-1, 1))\n",
    "y_test = ss_y.transform(y_test.reshape(-1, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>yr</td>\n",
       "      <td>[1.4286815977773553]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mnth</td>\n",
       "      <td>[0.4274345493572879]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season</td>\n",
       "      <td>[0.3041985312871964]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>atemp</td>\n",
       "      <td>[0.2487796232674783]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>temp</td>\n",
       "      <td>[0.23569164083820987]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>weekday</td>\n",
       "      <td>[0.0695620748448762]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>workingday</td>\n",
       "      <td>[0.04514524994041309]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday</td>\n",
       "      <td>[-0.029176871200629922]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hum</td>\n",
       "      <td>[-0.053534191214862636]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>[-0.08916019538030656]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit</td>\n",
       "      <td>[-0.19855368197656334]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>instant</td>\n",
       "      <td>[-1.0432738159581767]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       columns                     coef\n",
       "2           yr     [1.4286815977773553]\n",
       "3         mnth     [0.4274345493572879]\n",
       "1       season     [0.3041985312871964]\n",
       "9        atemp     [0.2487796232674783]\n",
       "8         temp    [0.23569164083820987]\n",
       "5      weekday     [0.0695620748448762]\n",
       "6   workingday    [0.04514524994041309]\n",
       "4      holiday  [-0.029176871200629922]\n",
       "10         hum  [-0.053534191214862636]\n",
       "11   windspeed   [-0.08916019538030656]\n",
       "7   weathersit   [-0.19855368197656334]\n",
       "0      instant    [-1.0432738159581767]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 线性回归\n",
    "#class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "# 使用默认配置初始化\n",
    "lr = LinearRegression()\n",
    "\n",
    "# 训练模型参数\n",
    "lr.fit(X_train, y_train)\n",
    "\n",
    "# 预测\n",
    "y_test_pred_lr = lr.predict(X_test)\n",
    "y_train_pred_lr = lr.predict(X_train)\n",
    "\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef\":list((lr.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集RMSE: 0.4274216705289744\n",
      "训练集RMSE: 0.45338016084169624\n"
     ]
    }
   ],
   "source": [
    "# 用scikit-learn计算RMSE\n",
    "rmse_lr=[np.sqrt(metrics.mean_squared_error(y_test, y_test_pred_lr)),np.sqrt(metrics.mean_squared_error(y_train, y_train_pred_lr))]\n",
    "#测试集\n",
    "print(\"测试集RMSE:\",rmse_lr[0])\n",
    "#训练集\n",
    "print(\"训练集RMSE:\",rmse_lr[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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4ovNLkUNMmzYMMaNG0dLS0uPt2FIS1IBVq1axT777MP48eOJaNSXn6lZMpMNGzawatUqJkyY0OPteLpbkgrw4osvMmrUKAN6NxERjBo1qtdnRgxpSSqEAb17acTxNKQlSSqU16QlqUBtbf2/vSFDhjBx4kQ2bdrEhAkT+Pa3v82IESN2eV8XXnghH/zgBzn66KO3ef5b3/oWixcv5pprrtnlbQIMHz6cjRs31rXutGnTuOqqq2htbd363OLFi7n++uu5+uqre7T/ZrAnLUkC4BWveAVLly7lkUceYeTIkVx77bU92s511123Q0CXoLW1tc8DevPmzQ3dniEtSdrB1KlTWb169db5K6+8khNOOIHjjjuOT3/60wC88MILzJgxg0mTJnHssccyf/58oNaLbb8F9De/+U2OOOIITjzxRO69996t2zv//PNZsGDB1vnhw4cDsHHjRqZPn87xxx/PxIkTue2223aobc2aNZxyyilMnjyZY489lh/96Ed1tWnRokWcccYZALS1tXHBBRcwbdo0DjvssG3C+4YbbuDEE09k8uTJvOc979kavJdccgmtra0cc8wxW98DqN3y+vLLL+f444/nlltuqauWenm6W5K0jc2bN7Nw4ULmzJkDwJ133sny5ct54IEHyEzOPPNM7rnnHtavX89BBx3ED37wAwCeffbZbbazZs0aPv3pT7NkyRL2228/3vSmNzFlypSd7nvYsGHceuut7Lvvvjz99NOcdNJJnHnmmdsMwvrOd77Daaedxsc//nE2b97M73//+x618/HHH+fuu+/m+eef53Wvex2XXHIJK1asYP78+dx77720tLRw6aWXcuONN3Leeefxuc99jpEjR7J582amT5/OQw89xHHHHQfAqFGjePDBB3tUx84Y0pIkAP7whz8wefJkVq9ezVFHHcVb3/pWoBbSd95559aA3bhxI8uXL+fkk0/mQx/6EJdffjlnnHEGJ5988jbbu//++5k2bRqjR9e+8Onss8/ml7/85U5ryEw+9rGPcc8997DHHnuwevVq1q5dywEHHLB1nRNOOIELLriAl19+mVmzZjF58uQetXfGjBnstdde7LXXXowZM4a1a9eycOFClixZwgknnLD1PRkzZgwAN998M3PnzmXTpk2sWbOGxx57bGtIn3322T2qoTue7pYkAf95TXrlypVk5tZr0pnJ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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#在训练集上观察预测残差的分布，看是否符合模型假设：噪声为0均值的高斯噪声\n",
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(y_train - y_train_pred_lr,bins=40, label='Residuals Linear', color='b', alpha=.5); \n",
    "ax.set_title(\"Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#观察预测值与真值的散点图\n",
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_train, y_train_pred_lr)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True count')\n",
    "plt.ylabel('Predicted count')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集RMSE: 0.4254906737014462\n",
      "训练集RMSE: 0.45623596489459994\n"
     ]
    }
   ],
   "source": [
    "#岭回归／L2正则\n",
    "#class sklearn.linear_model.RidgeCV(alphas=(0.1, 1.0, 10.0), fit_intercept=True, \n",
    "#                                  normalize=False, scoring=None, cv=None, gcv_mode=None, \n",
    "#                                  store_cv_values=False)\n",
    "from sklearn.linear_model import  RidgeCV\n",
    "\n",
    "#设置超参数（正则参数）范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#n_alphas = 20\n",
    "#alphas = np.logspace(-5,2,n_alphas)\n",
    "\n",
    "#生成一个RidgeCV实例\n",
    "ridge = RidgeCV(alphas=alphas, store_cv_values=True)  \n",
    "\n",
    "#模型训练\n",
    "ridge.fit(X_train, y_train)    \n",
    "\n",
    "#预测\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "\n",
    "# 用scikit-learn计算RMSE\n",
    "rmse_ridge=[np.sqrt(metrics.mean_squared_error(y_test, y_test_pred_ridge)),np.sqrt(metrics.mean_squared_error(y_train, y_train_pred_ridge))]\n",
    "#测试集\n",
    "print(\"测试集RMSE:\",rmse_ridge[0])\n",
    "#训练集\n",
    "print(\"训练集RMSE:\",rmse_ridge[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 10.0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>yr</td>\n",
       "      <td>[1.4286815977773553]</td>\n",
       "      <td>[0.3926766475807113]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mnth</td>\n",
       "      <td>[0.4274345493572879]</td>\n",
       "      <td>[-0.1385618089858999]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season</td>\n",
       "      <td>[0.3041985312871964]</td>\n",
       "      <td>[0.2783083943348078]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>atemp</td>\n",
       "      <td>[0.2487796232674783]</td>\n",
       "      <td>[0.2513044465109092]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>temp</td>\n",
       "      <td>[0.23569164083820987]</td>\n",
       "      <td>[0.23350772782051338]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>weekday</td>\n",
       "      <td>[0.0695620748448762]</td>\n",
       "      <td>[0.06776464467893306]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>workingday</td>\n",
       "      <td>[0.04514524994041309]</td>\n",
       "      <td>[0.04362904594382122]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday</td>\n",
       "      <td>[-0.029176871200629922]</td>\n",
       "      <td>[-0.029868791152437013]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hum</td>\n",
       "      <td>[-0.053534191214862636]</td>\n",
       "      <td>[-0.06294137965531404]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>[-0.08916019538030656]</td>\n",
       "      <td>[-0.09309314839479971]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit</td>\n",
       "      <td>[-0.19855368197656334]</td>\n",
       "      <td>[-0.18920755339980333]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>instant</td>\n",
       "      <td>[-1.0432738159581767]</td>\n",
       "      <td>[0.15426842719841982]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       columns                  coef_lr               coef_ridge\n",
       "2           yr     [1.4286815977773553]     [0.3926766475807113]\n",
       "3         mnth     [0.4274345493572879]    [-0.1385618089858999]\n",
       "1       season     [0.3041985312871964]     [0.2783083943348078]\n",
       "9        atemp     [0.2487796232674783]     [0.2513044465109092]\n",
       "8         temp    [0.23569164083820987]    [0.23350772782051338]\n",
       "5      weekday     [0.0695620748448762]    [0.06776464467893306]\n",
       "6   workingday    [0.04514524994041309]    [0.04362904594382122]\n",
       "4      holiday  [-0.029176871200629922]  [-0.029868791152437013]\n",
       "10         hum  [-0.053534191214862636]   [-0.06294137965531404]\n",
       "11   windspeed   [-0.08916019538030656]   [-0.09309314839479971]\n",
       "7   weathersit   [-0.19855368197656334]   [-0.18920755339980333]\n",
       "0      instant    [-1.0432738159581767]    [0.15426842719841982]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "#这是为了标出最佳参数的位置，不是必须\n",
    "#plt.plot(np.log10(ridge.alpha_)*np.ones(3), [0.28, 0.29, 0.30])\n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集RMSE: 0.4260249644715161\n",
      "训练集RMSE: 0.4547732499793626\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:1108: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/model_selection/_split.py:1943: FutureWarning: You should specify a value for 'cv' instead of relying on the default value. The default value will change from 3 to 5 in version 0.22.\n",
      "  warnings.warn(CV_WARNING, FutureWarning)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n",
      "/home/zhe/.local/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n"
     ]
    }
   ],
   "source": [
    "#### Lasso／L1正则\n",
    "# class sklearn.linear_model.LassoCV(eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, \n",
    "#                                    normalize=False, precompute=’auto’, max_iter=1000, \n",
    "#                                    tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=1,\n",
    "#                                    positive=False, random_state=None, selection=’cyclic’)\n",
    "from sklearn.linear_model import LassoCV\n",
    "\n",
    "#设置超参数搜索范围\n",
    "eps=0.00001\n",
    "n_alphas=50\n",
    "max_iter=100000\n",
    "tol=0.00001\n",
    "#生成一个LassoCV实例\n",
    "#lasso = LassoCV(alphas=alphas)  \n",
    "lasso = LassoCV()  \n",
    "\n",
    "#训练（内含CV）\n",
    "lasso.fit(X_train, y_train)  \n",
    "\n",
    "#测试\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "\n",
    "\n",
    "# 用scikit-learn计算RMSE\n",
    "rmse_lasso=[np.sqrt(metrics.mean_squared_error(y_test, y_test_pred_lasso)),np.sqrt(metrics.mean_squared_error(y_train, y_train_pred_lasso))]\n",
    "#测试集\n",
    "print(\"测试集RMSE:\",rmse_lasso[0])\n",
    "#训练集\n",
    "print(\"训练集RMSE:\",rmse_lasso[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzt3Xl0HOWZ7/Hvo92W5FWyMd6NZbywIwwBEsiwxJB78UA2lslAkhluzg2TbTIJDDlkhtwkk2GS3MkdspCEm+SGiUOAzJjBYBzAQCAEC2O8W5aFsWR5kTctlq2tn/tHl+S2kKyWrerqln6fc/qoqvrtrqfUVv9c9Va9Ze6OiIgIQFbUBYiISPpQKIiISDeFgoiIdFMoiIhIN4WCiIh0UyiIiEg3hYKIiHRTKIiISLfQQsHMHjazvWa2vo/nzcy+b2ZVZrbWzC4IqxYREUlOTojv/XPg34Bf9vH8dUBZ8LgY+GHw84RKSkp8xowZg1OhiMgw8cYbb+xz99L+2oUWCu7+kpnNOEGTxcAvPT7OxmtmNsbMJrn7rhO974wZM6ioqBjESkVEhj4zeyeZdlH2KUwGahLma4Nl72Jmd5pZhZlV1NfXp6Q4EZHhKCM6mt39IXcvd/fy0tJ+935EROQkRRkKO4GpCfNTgmUiIhKRKENhKfCXwVlIlwAN/fUniIhIuELraDazXwNXAiVmVgt8DcgFcPcfAcuA64EqoAX4RFi1iIhIcsI8++iWfp534DNhrV9ERAYuIzqaRUQkNRQKIiJpLhZzvvHURtbWHgp9XQoFEZE0t3FXIz95+W2q9jaHvi6FgohImnulah8Al80uCX1dCgURkTT3h6p9lE0oYuKogtDXpVAQEUljR9s7WbX9AJeXhb+XAAoFEZG0tnrHQY62x7g8BYeOQKEgIpLWXqnaR3aWcfGs8SlZn0JBRCSN/aFqP+dPHUNRfpi3vzlGoSAikqYaWtpZV3soJWcddVEoiIikqT9W7yfmpKyTGRQKIiJp65WqfRTmZXPe1DEpW6dCQUQkTb1StY9LZo0nNzt1X9UKBRGRNFR36AjV+w5zaQr7E0ChICKSlroGv7tw+tiUrlehICKShjbUNZKdZcw9rTil61UoiIikoQ11jcwuLaIgNzul6w01FMxskZltMbMqM7u7l+enm9lzZrbWzFaa2ZQw6xERyRQb6hpYcPqolK83tFAws2zgQeA6YD5wi5nN79HsX4Bfuvs5wP3At8KqR0QkU9Q3tbKnsZX5QykUgIVAlbtXu3sbsARY3KPNfOD5YPqFXp4XERl2NtQ1AHDW5NEpX3eYoTAZqEmYrw2WJXoLuCmYvhEoNrPUjPokIpKmNtQ1Agy5PYVkfAm4wszeBK4AdgKdPRuZ2Z1mVmFmFfX19amuUUQkpTbWNTJt3EhGFeSmfN1hhsJOYGrC/JRgWTd3r3P3m9z9fODeYNm77kzt7g+5e7m7l5eWloZYsohI9NZH1MkM4YbCKqDMzGaaWR5wM7A0sYGZlZhZVw33AA+HWI+ISNprPNrOO/tbhl4ouHsHcBewHNgEPOruG8zsfjO7IWh2JbDFzCqBicA3wqpHRCQTbAr6ExZE0MkMEOpdG9x9GbCsx7L7EqYfAx4LswYRkUzS1ck85PYURERk4NbXNVBanM+E4oJI1q9QEBFJIxvrGiPbSwCFgohI2jja3snWvc2cdXo0/QmgUBARSRuVe5rojLn2FEREBDbvbgLgzBQPl51IoSAikia27mkiLyeL6eMLI6tBoSAikiYq9zQzu7SI7CyLrAaFgohImti6p4k5E4sirUGhICKSBpqOtlPXcJSyidH1J4BCQUQkLVTuaQZgjkJBRES27omfeaTDRyIiQuWeZgpys5g6dmSkdSgURETSwNa9TZRNKCYrwjOPQKEgIpIWKvc0URbxoSNQKIiIRK6hpZ09ja2RdzKDQkFEJHKVe9OjkxkUCiIikavsPvNIewoiIsPe1j3NFOZlM3nMiKhLCTcUzGyRmW0xsyozu7uX56eZ2Qtm9qaZrTWz68OsR0QkHVXuaWL2xGLMoj3zCEIMBTPLBh4ErgPmA7eY2fwezb4KPOru5wM3Az8Iqx4RkXRVuaeZOROi70+AcPcUFgJV7l7t7m3AEmBxjzYOdN1NYjRQF2I9IiJp58DhNvY1p8eZRwA5Ib73ZKAmYb4WuLhHm38AnjWzvwEKgatDrEdEJO10dTKnwzUKEH1H8y3Az919CnA98P/M7F01mdmdZlZhZhX19fUpL1JEJCxbgrutzT0tultwJgozFHYCUxPmpwTLEn0KeBTA3f8IFAAlPd/I3R9y93J3Ly8tLQ2pXBGR1NtQ18D4wjwmjsqPuhQg3FBYBZSZ2UwzyyPekby0R5sdwFUAZjaPeChoV0BEho2NuxqZf/qotDjzCEIMBXfvAO4ClgObiJ9ltMHM7jezG4Jmfwv8tZm9BfwauMPdPayaRETSSXtnjMrdzcyflB6HjiDcjmbcfRmwrMey+xKmNwKXhVmDiEi62lbfTFtnjPmnp08oRN3RLCIybG2sawRIqz0FhYKISEQ21jWSn5PFzJLCqEvpplAQEYnIxl2NzJ00ipzs9PkqTp9KRESGEXePn3mURoeOQKEgIhKJXQ1HOdTSnladzKBQEBGJRDp2MoNCQUQkEhvqGjGDuaelx0B4XRQKIiIR2LirgZnjCynMD/VysQFTKIiIRGDjrkbmpVl/AigURERSruFIOzUHjqRdfwIoFEREUm7zrngn8wLtKYiIyLqdDQBpdzoqKBRERFJuTc0hJo8ZwYTigqhLeReFgohIiq2pOcR5U8dEXUavFAoiIilU39RK7cEjCgUREYnvJQCcP02hICIy7K2pOUhOlnHW5NFRl9IrhYKISAq9ueMQcycVU5CbHXUpvQo1FMxskZltMbMqM7u7l+e/Z2ZrgkelmR0Ksx4RkSh1xpy1tQ2cP3Vs1KX0KbRBN8wsG3gQuAaoBVaZ2dLgvswAuPsXEtr/DXB+WPWIiERtW30zza0dadvJDOHuKSwEqty92t3bgCXA4hO0vwX4dYj1iIhE6s0dBwE4L007mSHcUJgM1CTM1wbL3sXMpgMzgef7eP5OM6sws4r6+vpBL1REJBXW1Bxi9IhcZo5Pn3sy95QuHc03A4+5e2dvT7r7Q+5e7u7lpaWlKS5NRGRwvLnjEOdOHUNWlkVdSp/CDIWdwNSE+SnBst7cjA4dicgQdri1g8o9TWndnwDhhsIqoMzMZppZHvEv/qU9G5nZXGAs8McQaxERidTa2gZinr4XrXUJLRTcvQO4C1gObAIedfcNZna/md2Q0PRmYIm7e1i1iIhEbXVXJ/OU9A6FUO8D5+7LgGU9lt3XY/4fwqxBRCQd/OntA8yZWMTYwryoSzmhdOloFhEZsto7Y1RsP8Als8ZHXUq/FAoiIiFbv7OBlrZOLp6pUBARGfZeqz4AwMWzxkVcSf8UCiIiIXutej9lE4ooKcqPupR+KRRERELUkUH9CaBQEBEJ1fq6Rg63dWbEoSNQKIiIhOq16v0AGdHJDAoFEZFQvVa9n9kTiigtTv/+BFAoiIiEJt6fcJBLMuTQESgURERCs6GukebWjow5dAQKBRGR0HT3J2hPQUREXtpaz5yJRUwoLoi6lKQpFEREQnC4tYNVbx/kyjMnRF3KgCQdCmZ2uZl9IpguNbOZ4ZUlIpLZXt22n7bOGFfMyay7RSYVCmb2NeArwD3BolzgV2EVJSKS6V6s3MvIvGzKZ4yNupQBSXZP4UbgBuAwgLvXAcVhFSUiksncnZVb6rn0jBLyc7KjLmdAkg2FtuDOaA5gZoXhlSQiktm21R+m9uARrjwzsw4dQfKh8KiZ/RgYY2Z/Dfwe+El/LzKzRWa2xcyqzOzuPtp81Mw2mtkGM/v35EsXEUlPK7fsBci4/gRI8nac7v4vZnYN0AicCdzn7itO9BozywYeBK4BaoFVZrbU3TcmtCkj3k9xmbsfNLPM6qYXEenFi5X1nFFayNRxI6MuZcCS7WguBJ53978jvocwwsxy+3nZQqDK3avdvQ1YAizu0eavgQfd/SCAu+8dUPUiImmmpa2DP1UfyLhTUbske/joJSDfzCYDzwAfB37ez2smAzUJ87XBskRzgDlm9oqZvWZmi5KsR0QkLf0xOBU1E/sTIPlQMHdvAW4CfujuHwEWDML6c4Ay4ErgFuAnZjbmXSs3u9PMKsysor6+fhBWKyISjpVb6hmRm81FMzJnaItESYeCmb0HuA14KljW33lWO4GpCfNTgmWJaoGl7t7u7m8DlcRD4jju/pC7l7t7eWlpZqaviAx9sZizfMNu3jenhILczDoVtUuyofA54G7gCXffEFzN/Hw/r1kFlJnZTDPLA24GlvZo8x/E9xIwsxLih5Oqk6xJRCStvFlzkL1NrVx31qSoSzlpSZ19BLQAMeAWM/sLwAiuWeiLu3eY2V3AcuJ7FQ8HgXI/UOHuS4PnrjWzjUAn8Hfuvv8kt0VEJFLPrN9NbrbxZ/Mys5MZkg+FR4AvAeuJh0NS3H0ZsKzHsvsSph34YvAQEclY7s7T63dz+ewSRhX0d3Jm+ko2FOrd/clQKxERyWAb6hqpPXiEv/mz2VGXckqSDYWvmdlPgeeA1q6F7v5EKFWJiGSYp9fvIjvLuGb+aVGXckqSDYVPAHOJj47adfjIAYWCiAjx/oSLZ45jXGFe1KWckmRD4SJ3PzPUSkREMtTWPU1sqz/MHZfOiLqUU5bsKamvmtn8UCsREclQT6/fjRl8YEFmHzqC5PcULgHWmNnbxPsUjPjJQ+eEVpmISAZwd558q44Lp41lwqjMuRdzX5INBY1JJCLSi3U7G9i6t5lv3nh21KUMimSHzn4n7EJERDLRE6t3kpeTxQfPydyrmBMl26cgIiI9tHXE+M81O7lm/kRGj8jcC9YSKRRERE7Syi17OdjSzocu6HlXgMylUBAROUmPr66lpCiP95UNndGbFQoiIifh4OE2nt+8l8XnTSYne+h8lQ6dLRERSaEn19bR3ul86IIpUZcyqBQKIiID5O48WlHD3NOKmX/6qKjLGVQKBRGRAVq94xDrdzZy2yXToy5l0CkUREQG6Bevbqe4IIebzh86Zx11USiIiAzA3sajLFu3i49cOJXC/GQHhcgcCgURkQH499d30BFzPv6eoXfoCEIOBTNbZGZbzKzKzO7u5fk7zKzezNYEj78Ksx4RkVPR1hHjkT/t4MozS5lZUhh1OaEIbd/HzLKBB4FrgFpglZktdfeNPZr+xt3vCqsOEZHB8vT6XdQ3tXL7ELhvQl/C3FNYCFS5e7W7twFLgMUhrk9EJDTuzv99ZTszSwq5YghdwdxTmKEwGahJmK8NlvX0ITNba2aPmdnUEOsRETlpr27bz5qaQ3zy8plkZVnU5YQm6o7mJ4EZwc16VgC/6K2Rmd1pZhVmVlFfX5/SAkVEAP71ua2cNqqAj5YPrSuYewozFHYCif/znxIs6+bu+929NZj9KXBhb2/k7g+5e7m7l5eWDt3dNhFJT69V7+f1tw/wP66YRX5OdtTlhCrMUFgFlJnZTDPLA24GliY2MLPEu1LcAGwKsR4RkZPyf57fSklRPrcsnBZ1KaEL7ewjd+8ws7uA5UA28LC7bzCz+4EKd18KfNbMbgA6gAPAHWHVIyJyMt545wCvVO3n3uvnUZA7tPcSIMRQAHD3ZcCyHsvuS5i+B7gnzBpERE7F95+rYlxhHrddMvT3EiD6jmYRkbT16rZ9vFhZz53vm8XIvKE3pEVvFAoiIr2IxZxvLtvE6aMLuGMIX6zWk0JBRKQXS9+qY/3ORr70gTOHRV9CF4WCiEgPR9s7eWD5FhacPoo/P2/oDY99IgoFEZEefvHqdnYeOsK9188b0lcv90ahICKS4FBLGw++UMX7zyzl0tklUZeTcgoFEZEEP1i5jabWDr5y3dyoS4mEQkFEJLDz0BF+/up2bjp/CnNPGxV1OZFQKIiIBL63ohKAL147J+JKoqNQEBEBNu9u5PHVtdz+nulMHjMi6nIio1AQEQEeeGYLRfk5/M8rZ0ddSqQUCiIy7L3+9gGe27yXT19xBmML86IuJ1IKBREZ1tydbz29iYmj8vnkZTOjLidyCgURGdaWb9jDmzsO8YWr5zAib/gMZ9EXhYKIDFsdnTH+eflmzigt5MMXDu3bbCZLoSAiw9Zv36iluv4wX140l5xsfR2CQkFEhqmWtg6+t6KSC6eP5dr5E6MuJ20oFERkWPrX57ayt6mVv79+LmbDa9C7Ewk1FMxskZltMbMqM7v7BO0+ZGZuZuVh1iMiAvEL1X728tt8rHwqF04fF3U5aSW0UDCzbOBB4DpgPnCLmc3vpV0x8DngT2HVIiLSJRZzvvq79RQX5HD3MB307kTC3FNYCFS5e7W7twFLgMW9tPs68G3gaIi1iIgA8Ns3aqh45yD3XD9v2F+o1pswQ2EyUJMwXxss62ZmFwBT3f2pE72Rmd1pZhVmVlFfXz/4lYrIsLCvuZVvPb2ZhTPG8eELdApqbyLraDazLOC7wN/219bdH3L3cncvLy0tDb84ERly3J2vPLaWlrZOvnHjWcPujmrJCjMUdgJTE+anBMu6FANnASvNbDtwCbBUnc0iEoZH/rSD5zbv5SuL5lI2sTjqctJWmKGwCigzs5lmlgfcDCztetLdG9y9xN1nuPsM4DXgBnevCLEmERmGttU387+e2sh7y0r4xKUzoi4nrYUWCu7eAdwFLAc2AY+6+wYzu9/MbghrvSIiido6Ynx+yRpG5GbzLx85V4eN+pET5pu7+zJgWY9l9/XR9sowaxGR4emfnt7Mup0N/OgvLmDiqIKoy0l7uqJZRIas/1pbx8OvvM0dl85g0VmToi4nIygURGRIqtrbxJcfW8sF08bw99fPi7qcjKFQEJEhp7m1g0//ajUjcrP5wW0Xkpejr7pkhdqnICKSau2dMT7zyGqq65v51acu5rTR6kcYCIWCiAwZ7s49T6zjxcp6/umms7l0dknUJWUc7VOJyJDxnWcreeyNWj5/dRk3L5wWdTkZSaEgIkPCT1+u5t9eqOKWhVP53FVlUZeTsXT4SEQy3g9XbuPbz2zmurNO4+uLz9JNc06BQkFEMtr3n9vKd1dUcsO5p/Pdj56rey2fIoWCiGQkd+fbz2zhRy9u46YLJvPAh88lW0NYnDKFgohknPbOGHc/vo7HV9dy28XT+PpiDYU9WBQKIpJRWto6+Mwjq3lhSz1fuHoOn71qtvoQBpFCQUQyRs2BFj79qzfYtKuRb954NrderNNOB5tCQUQywkuV9Xx2yZvEYs7Pbr+I98+dEHVJQ5JCQUTSWizm/GBlFd9ZUcmZE4v58ccvZPr4wqjLGrIUCiKStvY1t/KF36zh5a37WHze6XzrprMZmaevrTDptysiaenVbfv4/JI1NBxp51s3nc3NF01Vh3IKhHqVh5ktMrMtZlZlZnf38vynzWydma0xsz+Y2fww6xGR9He0vZN/fHIDt/7kTxQV5PAfn7mMWxZOUyCkSGh7CmaWDTwIXAPUAqvMbKm7b0xo9u/u/qOg/Q3Ad4FFYdUkIult9Y6DfOm3b1Fdf5jb3zOdr1w3V4eLUizM3/ZCoMrdqwHMbAmwGOgOBXdvTGhfCHiI9YhImjpwuI0Hlm9myaoaJo0q4JG/upjLNOx1JMIMhclATcJ8LXBxz0Zm9hngi0Ae8Gch1iMiaaa9M8aSVTV859ktNB3t4FOXzeRzV5dRXJAbdWnDVuT7Ze7+IPCgmd0KfBW4vWcbM7sTuBNg2jRdrCKS6WIx56l1u/jOs1vYvr+FS2aN4/7FZzFnYnHUpQ17YYbCTmBqwvyUYFlflgA/7O0Jd38IeAigvLxch5hEMlRHZ4yn1u3ixy9Ws3FXI3NPK+bhO8p5/5kT1JGcJsIMhVVAmZnNJB4GNwO3JjYwszJ33xrMfhDYiogMOQ1H2nn8jVoefuVtag8eYVZpId/96LksPm+yRjZNM6GFgrt3mNldwHIgG3jY3TeY2f1AhbsvBe4ys6uBduAgvRw6EpHM5O5UvHOQX7++g6fW7qK1I8aF08fytf++gKvmTtCopmkq1D4Fd18GLOux7L6E6c+FuX4RSb29TUd5YvVOHq2oobr+MEX5OXz4wincsnAaZ00eHXV50o/IO5pFZGhYW3uIn/3hbZ5au4uOmHPRjLF8+n1n8MFzJlGYr6+aTKFPSkROWmtHJ8s37OFXr73D628foCg/h9svncGtF0/jjNKiqMuTk6BQEJEB27SrkSdW1/LYG7UcbGlnytgRfPWD8/jYRVN1jUGGUyiISFJ27G/hybV1LF1Tx5Y9TeRkGdcumMjNF03j8tkl6jgeIhQKItIrd2fz7iZWbNzD0+t3s2lXfFSaC6eP5euLF3D92ZMYX5QfcZUy2BQKItKtubWDV6v2sbKynhc272VXw1EgHgRf/eA8PrDgNKaOGxlxlRImhYLIMNbeGWNt7SFerdrPy1X7WP3OQTpiTmFeNpeXlfD5q8t4/5kTmDCqIOpSJUUUCiLDyNH2TtbWNrBq+wFef/sAFdsPcLitEzNYcPoo7nzfLN5bVsqF08eSlxPq7VYkTSkURIaoto4YW/c2sbGukXU7G1hTc4hNuxpp74wPHzZnYhE3XjCZy84o4ZJZ4xlbmBdxxZIOFAoiGa6lrYPt+1rYvv8wVXubqdzTxNY9zWyrb6YjFg+Awrxszp4ymk9dPosLpo3hohnjFALSK4WCSBrr6Ixx4HAbe5ta2dVwlN0NR6hrOMrOg0eoPdhCzcEj1De1HveaqeNGUDahmKvmTWDepFHMmzSKmSWFGnhOkqJQEEkRd6elrZPGo+00HGnnUEs7h1raONjSzv7mVvYfbmN/cxv7D7eyr6mNfc2tHGhpw3sMFp+TZUwaU8CUMSO5ck4pM0oKmT5+JDPGFzKrtFC3r5RTon89MiS5OzGHzpgT865HMB9zOv3Yz85Y/NHR9bPT6YjFaO+M0d7pwc8YbR1OW2eM1vZO2jpjHG2P0drRydH2GEfbOznS1smR4GdzawctbR00t3bS3NpO09EOmo92dB/O6U1Rfg7jCvMoKcpj+viRXDB9LBOK8yktzqekKJ9JowuYNLqA8UX5+l+/hGbYhMJvVu3gxy9Vgx9/I2h718SxSTPD3XHA/dgXjePEYsfmY91tjr1z16R3zx//Pn19NST+qSfedMTs+Lp6b//ud0p8XWIbw+h5T5MTrfv4OuzdyxNe00sZxws+g+N+J3jwu+n99xrz49vH3N/dNvjZFQCpVJCbxYjcbEbm5VCQm0VRfg4j83KYPCaX4oJiivJzKCrIYfSIXEaPyGVUQS5jR+YyZmQeYwtzGTsyj4Lc7NQWLdKLYRMK4wrzmTdpVPeXl3H8F3YXT5hwvPvL08zIsmNfflld8wZZZvH3PMEXcNf8cV+ePb4wex4mOLbcE2pNWM67QyhxG+LLegkqP/61vb3+WKgd/0Rfv7OeIdhbm56hE/9dcNxnYn38XrPsWJAZkJVl3fPZWdYdVtlZx16XbfF5MyM7Kz7f1T47K/4Zdk1nm5GTbeRkZZGdBbnZWeRkZ5GbZeTmZJGbnUVutpGfk0V+TjZ5OVnk52RRkJtNXnaWhniQIWPYhMI18ydyzfyJUZchIpLWdHWKiIh0UyiIiEi3UEPBzBaZ2RYzqzKzu3t5/otmttHM1prZc2Y2Pcx6RETkxEILBTPLBh4ErgPmA7eY2fwezd4Eyt39HOAx4J/DqkdERPoX5p7CQqDK3avdvQ1YAixObODuL7h7SzD7GjAlxHpERKQfYYbCZKAmYb42WNaXTwFP9/aEmd1pZhVmVlFfXz+IJYqISKK06Gg2s78AyoEHenve3R9y93J3Ly8tLU1tcSIiw0iY1ynsBKYmzE8Jlh3HzK4G7gWucPfWns+LiEjqmPd1Ge2pvrFZDlAJXEU8DFYBt7r7hoQ25xPvYF7k7luTfN964J3Br/iklQD7oi5ikAyVbRkq2wHalnSVidsy3d37PdQSWigAmNn1wP8GsoGH3f0bZnY/UOHuS83s98DZwK7gJTvc/YbQCgqBmVW4e3nUdQyGobItQ2U7QNuSrobStvQU6jAX7r4MWNZj2X0J01eHuX4RERmYtOhoFhGR9KBQOHUPRV3AIBoq2zJUtgO0LelqKG3LcULtUxARkcyiPQUREemmUBggM/t6MIDfGjN71sxO76Pd7Wa2NXjcnuo6k2FmD5jZ5mB7fmdmY/pot93M1gXbXJHqOvszgO044QCN6cDMPmJmG8wsZmZ9nt2S7p8JDGhbMuFzGWdmK4K/5xVmNraPdp3BZ7LGzJamus5B4e56DOABjEqY/izwo17ajAOqg59jg+mxUdfeS53XAjnB9LeBb/fRbjtQEnW9p7IdxE+L3gbMAvKAt4D5UdfeS53zgDOBlcQHi+yrXVp/JsluSwZ9Lv8M3B1M332Cv5XmqGs91Yf2FAbI3RsTZguh19stfwBY4e4H3P0gsAJYlIr6BsLdn3X3jmA2YwckTHI7+h2gMR24+yZ33xJ1HYMhyW3JiM+FeE2/CKZ/Afx5hLWESqFwEszsG2ZWA9wG3NdLk4EOBpgOPkkfAxISD75nzewNM7szhTWdjL62IxM/kxPJpM/kRDLlc5no7l0X2e4G+rq3b0EweOdrZpaRwTFs7tE8EMGV1qf18tS97v6f7n4vcK+Z3QPcBXwtpQUOQH/bErS5F+gAHunjbS53951mNgFYYWab3f2lcCru3SBtR1pIZluSEPlnAoO2LWnhRNuSOOPubmZ9nbY5PfhcZgHPm9k6d9822LWGSaHQC0/+SutHiF+x3TMUdgJXJsxPIX5cNeX62xYzuwP4b8BVHhwU7eU9dgY/95rZ74jv8qf0C2gQtiOpARpTYQD/vk70HpF/JsH6T3VbMuJzMbM9ZjbJ3XeZ2SRgbx/v0fW5VJvZSuB84n0mGUOHjwbIzMoSZhcDm3tpthy41szGBmcpXBssSytmtgj4MnCDH7vZUc82hWZW3DVNfFvWp67K/iWzHcQHZCwzs5lmlgfcDGTk2SGZ8JkMQKZ8LkuBrrN6xykNAAADQklEQVQIbwfetRcU/L3nB9MlwGXAxpRVOFii7unOtAfwOPE/wLXAk8DkYHk58NOEdp8EqoLHJ6Kuu49tqSJ+PHdN8PhRsPx0YFkwPYv4GSFvARuIHxaIvPaBbkcwfz3xkXu3peN2BDXeSPy4eiuwB1ieiZ9JstuSQZ/LeOA5YCvwe2BcsLz77x64FFgXfC7rgE9FXffJPHRFs4iIdNPhIxER6aZQEBGRbgoFERHpplAQEZFuCgUREemmUJBhw8yaT/H1jwVXqp6ozcoTjQiabJse7UvN7Jlk24ucCoWCSBLMbAGQ7e7VqV63u9cDu8zsslSvW4YfhYIMOxb3gJmtD+5J8LFgeZaZ/SC4N8MKM1tmZh8OXnYbCVexmtkPg4HPNpjZP/axnmYz+17Q5jkzK014+iNm9rqZVZrZe4P2M8zsZTNbHTwuTWj/H0ENIqFSKMhwdBNwHnAucDXwQDCezU3ADGA+8HHgPQmvuQx4I2H+XncvB84BrjCzc3pZTyFQ4e4LgBc5foysHHdfCHw+Yfle4Bp3vwD4GPD9hPYVwHsHvqkiA6MB8WQ4uhz4tbt3AnvM7EXgomD5b909Buw2sxcSXjMJqE+Y/2gwZHVO8Nx84kOfJIoBvwmmfwU8kfBc1/QbxIMIIBf4NzM7D+gE5iS030t8eAiRUCkURJJzBCgAMLOZwJeAi9z9oJn9vOu5fiSOKdMa/Ozk2N/hF4iPEXQu8b34owntC4IaREKlw0cyHL0MfMzMsoPj/O8DXgdeAT4U9C1M5PjhzzcBs4PpUcBhoCFod10f68kCuvokbgX+0E9do4FdwZ7Kx4nfqrLLHDJ3JFTJINpTkOHod8T7C94i/r/3L7v7bjN7HLiK+HDHNcBqoCF4zVPEQ+L37v6Wmb1JfNj0GuJh0pvDwEIz+yrxwz8f66euHwCPm9lfAs8Er+/y/qAGkVBplFSRBGZW5O7NZjae+N7DZUFgjABeCOY7k3yvZncvGqS6XgIWe/ye3yKh0Z6CyPH+y8zGAHnA1919N4C7HzGzrxG/f/COVBYUHOL6rgJBUkF7CiIi0k0dzSIi0k2hICIi3RQKIiLSTaEgIiLdFAoiItJNoSAiIt3+PxJPTjw0Ru34AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.0008259250150997041\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>coef_lasso</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>yr</td>\n",
       "      <td>[1.4286815977773553]</td>\n",
       "      <td>[0.3926766475807113]</td>\n",
       "      <td>0.676763</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>mnth</td>\n",
       "      <td>[0.4274345493572879]</td>\n",
       "      <td>[-0.1385618089858999]</td>\n",
       "      <td>-0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>season</td>\n",
       "      <td>[0.3041985312871964]</td>\n",
       "      <td>[0.2783083943348078]</td>\n",
       "      <td>0.299751</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>atemp</td>\n",
       "      <td>[0.2487796232674783]</td>\n",
       "      <td>[0.2513044465109092]</td>\n",
       "      <td>0.261372</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>temp</td>\n",
       "      <td>[0.23569164083820987]</td>\n",
       "      <td>[0.23350772782051338]</td>\n",
       "      <td>0.223432</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>weekday</td>\n",
       "      <td>[0.0695620748448762]</td>\n",
       "      <td>[0.06776464467893306]</td>\n",
       "      <td>0.069092</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>workingday</td>\n",
       "      <td>[0.04514524994041309]</td>\n",
       "      <td>[0.04362904594382122]</td>\n",
       "      <td>0.043677</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>holiday</td>\n",
       "      <td>[-0.029176871200629922]</td>\n",
       "      <td>[-0.029868791152437013]</td>\n",
       "      <td>-0.028512</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hum</td>\n",
       "      <td>[-0.053534191214862636]</td>\n",
       "      <td>[-0.06294137965531404]</td>\n",
       "      <td>-0.058441</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>windspeed</td>\n",
       "      <td>[-0.08916019538030656]</td>\n",
       "      <td>[-0.09309314839479971]</td>\n",
       "      <td>-0.090885</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>weathersit</td>\n",
       "      <td>[-0.19855368197656334]</td>\n",
       "      <td>[-0.18920755339980333]</td>\n",
       "      <td>-0.193934</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>instant</td>\n",
       "      <td>[-1.0432738159581767]</td>\n",
       "      <td>[0.15426842719841982]</td>\n",
       "      <td>-0.168935</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       columns                  coef_lr               coef_ridge  coef_lasso\n",
       "2           yr     [1.4286815977773553]     [0.3926766475807113]    0.676763\n",
       "3         mnth     [0.4274345493572879]    [-0.1385618089858999]   -0.000000\n",
       "1       season     [0.3041985312871964]     [0.2783083943348078]    0.299751\n",
       "9        atemp     [0.2487796232674783]     [0.2513044465109092]    0.261372\n",
       "8         temp    [0.23569164083820987]    [0.23350772782051338]    0.223432\n",
       "5      weekday     [0.0695620748448762]    [0.06776464467893306]    0.069092\n",
       "6   workingday    [0.04514524994041309]    [0.04362904594382122]    0.043677\n",
       "4      holiday  [-0.029176871200629922]  [-0.029868791152437013]   -0.028512\n",
       "10         hum  [-0.053534191214862636]   [-0.06294137965531404]   -0.058441\n",
       "11   windspeed   [-0.08916019538030656]   [-0.09309314839479971]   -0.090885\n",
       "7   weathersit   [-0.19855368197656334]   [-0.18920755339980333]   -0.193934\n",
       "0      instant    [-1.0432738159581767]    [0.15426842719841982]   -0.168935"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "#plt.plot(np.log10(lasso.alphas_)*np.ones(3), [0.3, 0.4, 1.0])\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "print ('alpha is:', lasso.alpha_)\n",
    "\n",
    "# 看看各特征的权重系数，系数的绝对值大小可视为该特征的重要性\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>评价</th>\n",
       "      <th>OLS</th>\n",
       "      <th>Ridge</th>\n",
       "      <th>LASSO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>训练集rmse</td>\n",
       "      <td>0.427422</td>\n",
       "      <td>0.425491</td>\n",
       "      <td>0.426025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>测试集rmse</td>\n",
       "      <td>0.453380</td>\n",
       "      <td>0.456236</td>\n",
       "      <td>0.454773</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        评价       OLS     Ridge     LASSO\n",
       "0  训练集rmse  0.427422  0.425491  0.426025\n",
       "1  测试集rmse  0.453380  0.456236  0.454773"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 比较三种模型的评价结果\n",
    "fs = pd.DataFrame({\"评价\":['训练集rmse','测试集rmse'], \"OLS\":rmse_lr, \"Ridge\":rmse_ridge, \"LASSO\":rmse_lasso})\n",
    "fs.sort_values(by=['OLS'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 分析总结\n",
    "使用OLS Ridge LASSO三种线性模型得到的RMSE总体十分接近，且评价也比较好。差别主要在于正则，各模型的正则参数依次OLS=0<LASSO<Ridge，因此测试集的评价依次OLS优于LASSO优于Ridge，而训练集的评价则相反，Ridge优于LASSO优于OLS。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
